home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Timer.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  2.5 KB  |  117 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Timer.p
  3.  
  4.      Contains:    Time Manager interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1993, 1995-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Timer;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __TIMER__}
  27. {$SETC __TIMER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC TimerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __CONDITIONALMACROS__}
  34. {$I ConditionalMacros.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MACTYPES__}
  37. {$I MacTypes.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __OSUTILS__}
  40. {$I OSUtils.p}
  41. {$ENDC}
  42.  
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49. CONST
  50.                                                                 {  high bit of qType is set if task is active  }
  51.     kTMTaskActive                = $00008000;
  52.  
  53.  
  54. TYPE
  55.     TMTaskPtr = ^TMTask;
  56. {$IFC TYPED_FUNCTION_POINTERS}
  57.     TimerProcPtr = PROCEDURE(tmTaskPtr: TMTaskPtr);
  58. {$ELSEC}
  59.     TimerProcPtr = Register68kProcPtr;
  60. {$ENDC}
  61.  
  62.     TimerUPP = UniversalProcPtr;
  63.     TMTask = RECORD
  64.         qLink:                    QElemPtr;
  65.         qType:                    INTEGER;
  66.         tmAddr:                    TimerUPP;
  67.         tmCount:                LONGINT;
  68.         tmWakeUp:                LONGINT;
  69.         tmReserved:                LONGINT;
  70.     END;
  71.  
  72. PROCEDURE InsTime(tmTaskPtr: QElemPtr);
  73.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  74.     INLINE $205F, $A058;
  75.     {$ENDC}
  76. PROCEDURE InsXTime(tmTaskPtr: QElemPtr);
  77.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  78.     INLINE $205F, $A458;
  79.     {$ENDC}
  80. PROCEDURE PrimeTime(tmTaskPtr: QElemPtr; count: LONGINT);
  81.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  82.     INLINE $201F, $205F, $A05A;
  83.     {$ENDC}
  84. PROCEDURE RmvTime(tmTaskPtr: QElemPtr);
  85.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  86.     INLINE $205F, $A059;
  87.     {$ENDC}
  88. PROCEDURE Microseconds(VAR microTickCount: UnsignedWide);
  89.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  90.     INLINE $A193, $225F, $22C8, $2280;
  91.     {$ENDC}
  92.  
  93. CONST
  94.     uppTimerProcInfo = $0000B802;
  95.  
  96. FUNCTION NewTimerProc(userRoutine: TimerProcPtr): TimerUPP;
  97.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  98.     INLINE $2E9F;
  99.     {$ENDC}
  100.  
  101. PROCEDURE CallTimerProc(tmTaskPtr: TMTaskPtr; userRoutine: TimerUPP);
  102.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  103.     {To be implemented:  Glue to move parameters into registers.}
  104.     {$ENDC}
  105.  
  106.  
  107. {$ALIGN RESET}
  108. {$POP}
  109.  
  110. {$SETC UsingIncludes := TimerIncludes}
  111.  
  112. {$ENDC} {__TIMER__}
  113.  
  114. {$IFC NOT UsingIncludes}
  115.  END.
  116. {$ENDC}
  117.